package ams

type TcpInstruction struct {
	InsCode    string `json:"insCode"`
	InsContent string `json:"insContent"`
	ServeTime  int64  `json:"serveTime"`
}

type TcpResponse struct {
	ConnId     string `json:"connId"`            // 连接码
	UniqueCode string `json:"uniqueCode"`        // 唯一码
	ClientTime int64  `json:"clientTime,string"` // 客户端时间

	ResCode    string `json:"resCode"`    // 结果内容
	ResContent string `json:"resContent"` // 执行结果
}

//type PluginInstructConfig struct {
//	Inst      PluginInstruct
//	ResCode   string `json:"insCode"`   // 结果码
//	IsSaveRes bool   `json:"isSaveRes"` // 是否需要保存到本地数据库中将结果作为采集信息记录
//	Caller    string `json:"caller"`    // 谁调用的这个插件， 调用者的ID，0-策略自动调用，不需要反馈；
//}

// PluginInstruct 插件指令
type PluginInstruct struct {
	Cmd             string   `json:"cmd" yaml:"cmd"`
	Args            []string `json:"args" yaml:"args"`
	User            string   `json:"user" yaml:"user"`
	Env             string   `json:"env" yaml:"env"`
	TimeoutDuration int      `json:"timeoutDuration" yaml:"timeoutDuration"` // 执行超时时间
}

// HandsUpMsg 举手信息
type HandsUpMsg struct {
	ConnId        string `json:"connId"`
	UniqueForFile string `json:"uniqueForFile"`
	UniqueForDB   string `json:"uniqueForDB"`
	UniqueForNow  string `json:"uniqueForNow"`
	MainMd5       string `json:"mainMd5"`
	MainVersion   string `json:"mainVersion"`
	// 扩展信息

	AssetCode       string `json:"assetCode"`
	IP              string `json:"ip"`
	ActiveMAC       string `json:"activeMAC,omitempty"`
	BiosSerial      string `json:"biosSerial"`
	MainBoardSerial string `json:"mainBoardSerial,omitempty"`
	HardDiskSerial  string `json:"hardDiskSerial,omitempty"`
	Hostname        string `json:"hostname"`
}

// PluginInfo 插件信息
type PluginInfo struct {
	Name    string `json:"name"`
	Md5     string `json:"md5"`
	Version string `json:"version"`
}

// ClientLog 客户端日志,
type ClientLog struct {
	Id          int64  `json:"id,string"`
	Cmd         string `json:"cmd"`
	Args        string `json:"args"`
	ElapsedTime int64  `json:"elapsedTime,string"` // 执行耗时
	LogCode     string `json:"logCode"`            // 日志码
	LogContent  string `json:"logContent"`         // 日志内容
	CreateAt    int64  `json:"createAt,string"`
}
